#!/usr/bin/env node

/**
 * 快速推送Summarization到飞书多维表格
 * 使用方法：node 快速推送.js
 */

const { pushSummarizationToBitable } = require('./pushSummarization');
const fs = require('fs');
const path = require('path');

// 检查配置
function checkConfig() {
  const clientPath = path.join(__dirname, 'client.js');
  
  if (!fs.existsSync(clientPath)) {
    console.error('❌ 配置文件不存在！');
    console.log('请先复制 client.example.js 为 client.js 并配置你的飞书应用凭证。');
    console.log('\n配置步骤：');
    console.log('1. 复制文件：cp client.example.js client.js');
    console.log('2. 编辑 client.js 填入你的 App ID 和 App Secret');
    console.log('3. （可选）填入 userAccessToken 获得更好的权限体验');
    console.log('\n详细配置指南请查看：README_配置指南.md');
    return false;
  }
  
  // 检查client.js是否已配置
  const clientContent = fs.readFileSync(clientPath, 'utf8');
  if (clientContent.includes('appId: ""') || clientContent.includes('appId: "",')) {
    console.error('❌ 飞书应用凭证未配置！');
    console.log('请编辑 client.js 文件，填入你的 App ID 和 App Secret。');
    console.log('\n获取凭证的步骤：');
    console.log('1. 访问飞书开发者后台：https://open.feishu.cn/app');
    console.log('2. 创建或选择你的应用');
    console.log('3. 在「凭证与基础信息」页面获取 App ID 和 App Secret');
    console.log('\n详细配置指南请查看：README_配置指南.md');
    return false;
  }
  
  return true;
}

// 检查summarization文件
function checkSummarizationFile() {
  const summaryPath = path.join(__dirname, '../summaries/temp_push_data.json');
  
  if (!fs.existsSync(summaryPath)) {
    console.error('❌ Summarization文件不存在！');
    console.log(`文件路径：${summaryPath}`);
    console.log('请确保已运行AI解析程序生成temp_push_data.json文件。');
    return false;
  }
  
  try {
    const content = fs.readFileSync(summaryPath, 'utf8');
    const data = JSON.parse(content);
    
    // 适配新的数据格式：title 和 summary 字段
    if (!data.title || !data.summary) {
      console.error('❌ Summarization文件格式不正确！');
      console.log('文件应包含 title 和 summary 字段。');
      return false;
    }
    
    console.log('✅ 找到Summarization文件');
    console.log(`标题：${data.title}`);
    
    // 处理summary字段（可能是数组或字符串）
    let summaryText = '';
    if (Array.isArray(data.summary)) {
      summaryText = data.summary.join('\n');
    } else {
      summaryText = data.summary;
    }
    console.log(`内容长度：${summaryText.length} 字符`);
    return true;
    
  } catch (error) {
    console.error('❌ Summarization文件解析失败！');
    console.error('错误信息：', error.message);
    return false;
  }
}

// 主函数
async function main() {
  console.log('🚀 飞书多维表格推送工具\n');
  
  // 检查配置
  if (!checkConfig()) {
    process.exit(1);
  }
  
  // 检查数据文件
  if (!checkSummarizationFile()) {
    process.exit(1);
  }
  
  console.log('\n开始推送到飞书多维表格...');
  
  try {
    await pushSummarizationToBitable();
    console.log('\n🎉 推送完成！');
  } catch (error) {
    console.error('\n❌ 推送失败！');
    console.error('错误信息：', error.message);
    console.log('\n可能的解决方案：');
    console.log('1. 检查网络连接');
    console.log('2. 确认飞书应用凭证正确');
    console.log('3. 确认应用权限已开通');
    console.log('4. 查看详细错误信息进行调试');
    process.exit(1);
  }
}

// 运行主函数
if (require.main === module) {
  main();
}

module.exports = { main, checkConfig, checkSummarizationFile };